Parallelism এর জন্য pmap, future, এবং promise এর ব্যবহার

Computer Programming - ক্লোজার (Clojure) Concurrency এবং Parallelism (Concurrency and Parallelism) |
255
255

Parallelism এর জন্য pmap, future, এবং promise এর ব্যবহার

ক্লোজার (Clojure) একটি ফাংশনাল প্রোগ্রামিং ভাষা যা মাল্টি-থ্রেডিং এবং প্যারালাল প্রোগ্রামিংকে সমর্থন করে। ক্লোজারে parallelism বা প্যারালালিজম (একই সময়ে একাধিক কাজ চালানো) করার জন্য pmap, future, এবং promise এর মতো টুলস ব্যবহার করা হয়। এগুলো মাল্টি-থ্রেডেড কার্যক্রমকে সহজে পরিচালনা করতে সহায়ক, এবং নির্দিষ্ট কাজের কার্যকারিতা এবং প্রোডাক্টিভিটি বাড়াতে সহায়ক।

এগুলো আসলে Concurrency (একাধিক কাজ একে অপরের সাথে সময়ের মধ্যে সম্পন্ন হওয়া) এবং Parallelism (একাধিক কাজ একই সময়ে সম্পন্ন হওয়া) এর মধ্যে পার্থক্যকে মান্য করে।


১. pmap (Parallel Map)

pmap হল ক্লোজারে একটি প্যারালাল ম্যাপিং ফাংশন যা প্রতিটি কলব্যাক ফাংশনকে পৃথক থ্রেডে প্রসেস করার মাধ্যমে মাল্টি-থ্রেডেডভাবে কাজ করে। এটি মূলত একটি পারALLEL মেপিং ফাংশন, যা বড় ডেটাসেটের উপর অপারেশন কার্যকরী করতে ব্যবহার করা হয়।

উদাহরণ: pmap ব্যবহার

(defn slow-function [n]
  (Thread/sleep 1000)
  (* n n))

; pmap ব্যবহার করে ফাংশনকে প্যারালালভাবে প্রয়োগ করা
(def results (pmap slow-function [1 2 3 4 5]))

(println results) ; আউটপুট: (1 4 9 16 25)

এখানে, slow-function প্রতি সংখ্যায় ১ সেকেন্ড সময় নেয়, কিন্তু pmap ব্যবহার করে এটি সকল ইনপুটের উপর একযোগে কাজ করে এবং একাধিক থ্রেডে প্রসেস হয়, তাই এটি দ্রুত শেষ হয়।

  • pmap ব্যবহারের সুবিধা হলো এটি একাধিক উপাদানকে একযোগে প্যারালাল প্রসেস করতে পারে, বিশেষত যখন কাজের এক্সপেনসিভ বা সময়সাপেক্ষ।

২. future (অ্যাসিনক্রোনাস কম্পিউটেশন)

future ফাংশনটি ক্লোজারে একটি অ্যাসিনক্রোনাস কম্পিউটেশন সম্পাদন করার জন্য ব্যবহৃত হয়। এটি একটি কাজকে ব্যাকগ্রাউন্ডে রান করার জন্য একটি পৃথক থ্রেডে সরবরাহ করে, এবং যখন কাজটি শেষ হয় তখন তা একটি ফলাফল প্রদান করে। future মূলত এ্যাসিনক্রোনাস কাজের জন্য ব্যবহৃত হয়, যেখানে আপনি কাজটি সম্পন্ন হওয়ার পরেই ফলাফল চান, তবে মূল থ্রেড চলতে থাকে।

উদাহরণ: future ব্যবহার

(defn long-running-task [n]
  (Thread/sleep 2000)
  (* n n))

(def future-result (future (long-running-task 10)))

(println "Task is running asynchronously...")
(println "Result: " @future-result) ; আউটপুট: 100 (2 সেকেন্ড পর)
  • future ফাংশনটি একটি ব্যাকগ্রাউন্ড থ্রেডে কাজটি রান করে এবং আপনি @ ব্যবহার করে ফলাফল পাবেন যখন এটি সম্পন্ন হবে।
  • এটি অ্যাসিনক্রোনাস প্রসেসিংয়ে খুবই কার্যকরী, কারণ এটি অন্য কাজের সাথে থ্রেড বন্ধ না করে কাজ চালিয়ে যেতে দেয়।

৩. promise (ফিউচার রেজাল্টের জন্য অপেক্ষা)

promise হল একটি প্যারালাল প্রোগ্রামিং কনসেপ্ট যা একটি মান রিটার্ন করার জন্য অপেক্ষা করতে ব্যবহৃত হয়। এটি একটি বিশেষ ধরনের ভেরিয়েবল বা স্টোরেজ যা অ্যাসিনক্রোনাস ফাংশন বা থ্রেডের মাধ্যমে মান রিটার্ন করার সময় ব্যবহৃত হয়। একটি promise হল একটি প্লেসহোল্ডার যা অন্য থ্রেড বা প্রসেসের মাধ্যমে মানের উপলব্ধির জন্য অপেক্ষা করে।

উদাহরণ: promise ব্যবহার

(defn long-task [n p]
  (Thread/sleep 3000)
  (deliver p (* n n))) ; `deliver` promise পূর্ণ করে

(def my-promise (promise))

; promise এর জন্য অপেক্ষা করা
(future (long-task 10 my-promise))

(println "Waiting for result...")
(println "Result: " @my-promise) ; আউটপুট: 100 (3 সেকেন্ড পর)
  • এখানে, long-task একটি অ্যাসিনক্রোনাস ফাংশন যা promise এ একটি মান প্রদান করে। মূল থ্রেড @my-promise ব্যবহার করে সেই মানের জন্য অপেক্ষা করে এবং এটি পাওয়ার পর ফলাফল প্রিন্ট করে।
  • promise থ্রেডগুলির মধ্যে ডেটা পাস করার জন্য এবং অ্যাসিনক্রোনাস ফাংশনের সাথে সিঙ্ক্রোনাইজ করার জন্য ব্যবহৃত হয়।

সারসংক্ষেপ: pmap, future, এবং promise এর তুলনা

ফাংশনউদ্দেশ্যব্যবহার
pmapমাল্টিপল উপাদানের উপর প্যারালাল অপারেশন (যেমন map ফাংশনের মতো)একটি কলব্যাক ফাংশন একাধিক থ্রেডে চালানোর জন্য
futureঅ্যাসিনক্রোনাস কাজ চালানো এবং ফলাফল পরে পাওয়াব্যাকগ্রাউন্ড থ্রেডে দীর্ঘ চলমান কাজ সম্পন্ন করার জন্য
promiseঅ্যাসিনক্রোনাস মানের জন্য প্লেসহোল্ডার, যা রেজাল্ট পাওয়ার জন্য অপেক্ষা করেএক থ্রেডে মান প্রদান এবং অন্য থ্রেডে সেই মানের জন্য অপেক্ষা করা

এই তিনটি ফাংশনই ক্লোজারে প্যারালাল প্রোগ্রামিং এবং অ্যাসিনক্রোনাস কার্যক্রমকে সহজে পরিচালনা করার জন্য ব্যবহৃত হয়। pmap প্যারালাল প্রসেসিংয়ের জন্য, future অ্যাসিনক্রোনাস কম্পিউটেশনের জন্য এবং promise ফিউচার রেজাল্টের জন্য অপেক্ষা করার জন্য উপকারী।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion